package main

import (
	"fmt"
	"io/ioutil"
	"os"
)

func main() {

	testFilePath := "/Users/liuwx/Documents/project/go-demo/abc/efg/test.txt"
	//打开文件
	testFileData, err := ioutil.ReadFile(testFilePath)
	if err != nil {
		fmt.Printf("打开 testFilePath %s  文件失败,错误原因 %s \n ", testFilePath, err.Error())
		return
	}
	fmt.Println(string(testFileData))

	//写入文件
	err = ioutil.WriteFile(testFilePath, []byte("年年的喜庆"), os.ModePerm)
	if err != nil {
		fmt.Printf("写入 testFilePath %s  文件失败,错误原因 %s \n ", testFilePath, err.Error())
		return
	}

	//文件复制
	destFilePath := "/Users/liuwx/Documents/project/go-demo/mkdir/abc/test.txt"
	err = ioutil.WriteFile(destFilePath, testFileData, os.ModePerm)
	if err != nil {
		fmt.Printf("写入 destFilePath %s  文件失败,错误原因 %s \n ", destFilePath, err.Error())
		return
	}

	//遍历目录
	dir := "/Users/liuwx/Documents/project/go-demo/mkdir"
	fileInfos, err := ioutil.ReadDir(dir)
	if err != nil {
		fmt.Printf("读取目录 dir %s  失败,错误原因 %s \n ", dir, err.Error())
		return
	}
	for i, info := range fileInfos {
		fmt.Printf("第%d个文件是目录吗 %v , 文件名是 %s \n ", i, info.IsDir(), info.Name())
	}

	//创建目录,*表示生成一个随机数表示的文件名,temp-表示以 temp-为文件夹前缀
	//tempDir, err := ioutil.TempDir("/Users/liuwx/Documents/", "*")
	tempDir, err := ioutil.TempDir("/Users/liuwx/Documents/", "temp-")
	if err != nil {
		fmt.Printf("创建目录 dir %s  失败,错误原因 %s \n ", "temp", err.Error())
		return
	}
	fmt.Println("tempDir == ", tempDir)

	//创建文件
	tempFile, err := ioutil.TempFile("/Users/liuwx/Documents/project/go-demo/mkdir/abc/", "temp-")
	if err != nil {
		fmt.Printf("创建文件 tempFile  失败,错误原因 %s \n ", err.Error())
		return
	}

	byteNum, err2 := tempFile.WriteString("赘婿第7集")
	if err2 != nil {
		fmt.Printf("创建文件 tempFile  失败,错误原因 %s \n ", err2.Error())
		return
	}

	fmt.Printf("文件内容 byteNum ==  %d  \n ", byteNum)

}
